package org.example;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

public class ServerHandler extends ChannelInboundHandlerAdapter {
    /*
     * 当客户端连接建立时调用
     * 可以在这里发送欢迎消息
     */
    @Override
    public void channelActive(ChannelHandlerContext ctx) {
        System.out.println("Client connected: " + ctx.channel().remoteAddress());
        ctx.writeAndFlush("Welcome to Netty server!\n");
    }

    /*
     * 当收到客户端消息时调用
     * 这里实现简单的回显功能
     */
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) {
        String message = (String) msg;
        System.out.println("Received from client: " + message);
        ctx.writeAndFlush("Echo: " + message + "\n");
    }

    /*
     * 处理异常情况
     * 通常需要关闭连接
     */
    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
        cause.printStackTrace();
        ctx.close();
    }
}